home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD001b.dsk / REMPRT.bas < prev    next >
BASIC Source File  |  2003-06-12  |  11KB  |  249 lines

  1. 5  REM   REMPRT   PRINTS REMINDERS
  2. 8  HOME : VTAB 12: PRINT "INITIALIZATION TAKES 7 SECONDS"
  3. 10  GOTO 8000
  4. 100  IF YY <70  THEN YY = YY +100
  5. 105 Y4 = YY/N4:I4 =  INT(Y4):CD = (YY *LY) +I4 +DD
  6. 110  IF I4 = Y4  AND MM <N3  THEN CD = CD -N1
  7. 120 CD = CD +VD(MM): RETURN 
  8. 200 DW$ = VD$(CD -( INT(CD/N7) *N7)): RETURN 
  9. 300 YY =  INT(CD/LY):JD = CD -(YY *LY) - INT((YY -N1)/N4): IF JD <N1  THEN YY = YY -N1
  10. 310 LF = N0:Y4 = YY/N4: IF  INT(Y4) = Y4  THEN LF = N1
  11. 320  IF JD <N1  AND LF = N0  THEN JD = LY +JD
  12. 330  IF JD <N1  AND LF = N1  THEN JD = LY +JD +N1
  13. 340  IF JD <SY  THEN LF = N0
  14. 350 MM = VM(JD -LF):MM$ = MO$(MM):DD = JD -LF -VD(MM): IF JD = SY  THEN DD = DD +LF
  15. 355  IF YY >99  THEN YY = YY -100
  16. 360  RETURN 
  17. 400  GOSUB 200: GOSUB 300:FD$ = DW$ +" " + STR$(DD) +" " +MM$ +" " + STR$(YY): RETURN 
  18. 450  IF LC >PL -N1 GOTO 470
  19. 460  PRINT :LC = LC +N1: GOTO 450
  20. 470  PRINT DL$:LC = N1: RETURN 
  21. 500  INPUT " ";S$: PRINT DL$: RETURN 
  22. 600  IF LC >(PL -13)  THEN  GOSUB 450
  23. 602  IF PT$ < >" " GOTO 606
  24. 604 CD = TD: GOSUB 400:PT$ = FD$
  25. 606  POKE 36,39 - LEN(PT$): PRINT PT$:LC = LC +N1
  26. 610  PRINT R1$;: POKE 36,29: PRINT TD$:LC = LC +N1
  27. 612  IF  LEN(R2$) < >N0  THEN  PRINT R2$
  28. 614  IF  LEN(R3$) < >N0  THEN  PRINT R3$
  29. 616  IF  LEN(R2$) < >N0  THEN LC = LC +N1
  30. 618  IF  LEN(R3$) < >N0  THEN LC = LC +N1
  31. 630  IF  LEN(FQ$) >N1 GOTO 660
  32. 632  IF FQ$ = "A"  THEN PF$ = "ANNUAL"
  33. 634  IF FQ$ = "T"  THEN PF$ = "TWICE-A-YEAR"
  34. 636  IF FQ$ = "Q"  THEN PF$ = "QUARTERLY"
  35. 638  IF FQ$ = "E"  THEN PF$ = "EVERY-OTH-MO"
  36. 640  IF FQ$ = "M"  THEN PF$ = "MONTHLY"
  37. 642  IF FQ$ = "B"  THEN PF$ = "BI-MONTHLY"
  38. 644  IF FQ$ = "W"  THEN PF$ = "WEEKLY"
  39. 646  IF FQ$ = "D"  THEN PF$ = "DAILY"
  40. 648  IF FQ$ = "S"  THEN PF$ = "SPECIFIC-DTE"
  41. 650  GOTO 700
  42. 660 PF$ =  RIGHT$(FQ$,N2)
  43. 662  IF PF$ = "MO"  THEN PF$ = "-MON"
  44. 664  IF PF$ = "TU"  THEN PF$ = "-TUE"
  45. 666  IF PF$ = "WE"  THEN PF$ = "-WED"
  46. 668  IF PF$ = "TH"  THEN PF$ = "-THR"
  47. 670  IF PF$ = "FR"  THEN PF$ = "-FRI"
  48. 672  IF PF$ = "SA"  THEN PF$ = "-SAT"
  49. 674  IF PF$ = "SU"  THEN PF$ = "-SUN"
  50. 680  IF  LEFT$(FQ$,N1) = "1"  THEN PF$ = "1ST" +PF$
  51. 682  IF  LEFT$(FQ$,N1) = "2"  THEN PF$ = "2ND" +PF$
  52. 684  IF  LEFT$(FQ$,N1) = "3"  THEN PF$ = "3RD" +PF$
  53. 686  IF  LEFT$(FQ$,N1) = "4"  THEN PF$ = "4TH" +PF$
  54. 700  POKE 36,39 - LEN(PF$): PRINT PF$
  55. 740  POKE 36,10: PRINT "PRIOR YR=";YP;: POKE 36,22: PRINT "MO=";MP;: POKE 36,28: PRINT "WK=";WP;: POKE 36,34: PRINT "DY=";DP
  56. 750  POKE 36,10: PRINT "AFTER YR=";YA;: POKE 36,22: PRINT "MO=";MA;: POKE 36,28: PRINT "WK=";WA;: POKE 36,34: PRINT "DY=";DA
  57. 755  PRINT DL$:LC = LC +N4: RETURN 
  58. 1000  HOME : VTAB N6: PRINT  TAB( 15);"OPTIONS ARE": VTAB 10
  59. 1010  PRINT  TAB( 5);N1;"  DAILY RUN": PRINT 
  60. 1020  PRINT  TAB( 5);N2;"  PRINT ALL": PRINT 
  61. 1030  PRINT  TAB( 5);N3;"  NEITHER": VTAB 22
  62. 1040  INPUT "CHOOSE 1,2 OR 3 ";OP
  63. 1050  IF  INT(OP) < >OP  OR OP <N1  OR OP >N3 GOTO 1040
  64. 1060  IF OP = N3 GOTO 9600
  65. 2000  HOME :RD = LD +N1:CD = RD: GOSUB 400
  66. 2002  PRINT "CURRENT DATE IS ";FD$: INPUT "IS THAT RIGHT? (Y OR N)? ";R$
  67. 2004  PRINT DL$: IF R$ = "N" GOTO 2010
  68. 2006  IF R$ < >"Y" GOTO 2002
  69. 2008  GOTO 2250
  70. 2010  HOME : PRINT "*** ENTER CURRENT DATE ***"
  71. 2015  INPUT "MONTH ";MM
  72. 2017  IF MM < > INT(MM)  OR MM <N1  OR MM >NC GOTO 2015
  73. 2020  INPUT "  DAY ";DD
  74. 2030  IF DD < > INT(DD)  OR DD <N1 GOTO 2020
  75. 2040 XM = VD(MM +N1) -VD(MM): IF MM = N2  THEN XM = XM +N1
  76. 2050  IF DD >XM GOTO 2020
  77. 2160  INPUT " YEAR ";YY
  78. 2170  IF YY < > INT(YY)  OR YY <N0  OR YY >99 GOTO 2160
  79. 2180  IF YY/N4 < > INT(YY/N4)  AND MM = N2  AND DD = 29 GOTO 2020
  80. 2190  GOSUB 100: GOSUB 400: PRINT DL$: PRINT FD$
  81. 2210  INPUT "IS THAT RIGHT? (Y OR N)? ";R$
  82. 2211  PRINT DL$
  83. 2220  IF R$ = "N" GOTO 2010
  84. 2230  IF R$ < >"Y" GOTO 2210
  85. 2240 RD = CD
  86. 2250 KM = MM:KD = DD:KY = YY:PS = N1:PT$ = " "
  87. 2370  PRINT "SET PRINTER TO TOP OF FORM": PRINT 
  88. 2380  INPUT "TURN ON PRINTER AND HIT RETURN ";R$
  89. 2390  PRINT D$"PR#1": PRINT 
  90. 2395 CD = RD: GOSUB 400: IF OP = N2 GOTO 2397
  91. 2396  PRINT "REMINDERS FOR ";FD$:LC = N1: GOTO 2398
  92. 2397  PRINT FD$;"  LIST OF ALL REMINDERS": PRINT : PRINT "PERIODIC REMINDERS WILL BE LISTED LAST": PRINT : PRINT "SPECIFIC-DTE REMINDERS ARE LISTED FIRST":LC = N5
  93. 2398  PRINT DL$:LC = LC +N1
  94. 2400 R = FP
  95. 2405  IF R = H1 GOTO 4290
  96. 2410  PRINT D$"READ REMINDER,R"R
  97. 2420  INPUT BP:BP = BP -TH: INPUT FP:FP = FP -TH
  98. 2430  INPUT TD$: INPUT R1$: INPUT R2$: INPUT R3$: INPUT FQ$: INPUT YP: INPUT MP: INPUT WP: INPUT DP: INPUT DA: INPUT WA: INPUT MA: INPUT YA
  99. 2440  PRINT D$
  100. 2445 YY =  VAL( LEFT$(TD$,N2)):MM =  VAL( MID$ (TD$,N3,N2)):DD =  VAL( MID$ (TD$,N5,N2)): GOSUB 100:TD = CD
  101. 2447  IF OP = N2 GOTO 5000
  102. 2450  IF FQ$ < >"D" GOTO 2470
  103. 2460 PD = RD:ND = RD: GOTO 2950
  104. 2470  IF FQ$ < >"S" GOTO 2490
  105. 2480 PD = TD:ND = TD: GOTO 2950
  106. 2490  IF FQ$ < >"A"  AND FQ$ < >"T"  AND FQ$ < >"Q"  AND FQ$ < >"E"  AND FQ$ < >"M" GOTO 2550
  107. 2495  IF FQ$ = "A"  THEN MQ = NC
  108. 2500  IF FQ$ = "T"  THEN MQ = N6
  109. 2510  IF FQ$ = "Q"  THEN MQ = N3
  110. 2520  IF FQ$ = "E"  THEN MQ = N2
  111. 2530  IF FQ$ = "M"  THEN MQ = N1
  112. 2540 DQ = N0: GOTO 2850
  113. 2550  IF FQ$ < >"B"  AND FQ$ < >"W" GOTO 2590
  114. 2560  IF FQ$ = "B"  THEN DQ = 14
  115. 2570  IF FQ$ = "W"  THEN DQ = N7
  116. 2580 ND = RD -22:ND = TD -( INT(TD/N7) *N7) +( INT(ND/N7) *N7): GOTO 2870
  117. 2590 AF$ =  RIGHT$(FQ$,N2):AF = N0
  118. 2600  IF AF$ = "MO"  THEN AF = N1
  119. 2610  IF AF$ = "TU"  THEN AF = N2
  120. 2620  IF AF$ = "WE"  THEN AF = N3
  121. 2630  IF AF$ = "TH"  THEN AF = N4
  122. 2640  IF AF$ = "FR"  THEN AF = N5
  123. 2650  IF AF$ = "SA"  THEN AF = N6
  124. 2660 MM = KM:DD = N1:YY = KY: GOSUB 100
  125. 2670 AA = CD -( INT(CD/N7) *N7)
  126. 2680 OC = CD +AF -AA: IF AA >AF  THEN OC = OC +N7
  127. 2690 BB = N7 *( VAL( LEFT$(FQ$,N1)) -N1)
  128. 2695 OC = OC +BB
  129. 2700  IF OC >RD GOTO 2770
  130. 2710 PD = OC
  131. 2720 MM = KM +N1: IF MM >NC  THEN YY = YY +N1
  132. 2730  IF MM >NC  THEN MM = N1
  133. 2740  GOSUB 100:AA = CD -( INT(CD/N7) *N7)
  134. 2750 OC = CD +AF -AA: IF AA >AF  THEN OC = OC +N7
  135. 2760 ND = OC +BB: GOTO 2950
  136. 2770 ND = OC:MM = KM -N1: IF MM <N1  THEN YY = YY -N1
  137. 2780  IF MM <N1  THEN MM = NC
  138. 2790  GOSUB 100:AA = CD -( INT(CD/N7) *N7)
  139. 2800 OC = CD +AF -AA: IF AA >AF  THEN OC = OC +N7
  140. 2810 PD = OC +BB: GOTO 2950
  141. 2850 YY = KY -N1:MM =  VAL( MID$ (TD$,N3,N2)):DD =  VAL( MID$ (TD$,N5,N2))
  142. 2860  GOSUB 100:ND = CD
  143. 2870  IF ND >RD GOTO 2950
  144. 2880 PD = ND: IF DQ = N0 GOTO 2900
  145. 2890 ND = ND +DQ: GOTO 2870
  146. 2900 MM = MM +MQ: IF MM >NC  THEN YY = YY +N1
  147. 2910  IF MM >NC  THEN MM = MM -NC
  148. 2920  GOTO 2860
  149. 2950  IF RD =  <LD  THEN LD = RD -N1
  150. 2960  IF PD <LD +N1 GOTO 2990
  151. 2970  IF PD >RD GOTO 2990
  152. 2980  GOTO 5100
  153. 2990  IF ND =  <RD GOTO 3140
  154. 3000  IF DP = N0 GOTO 3020
  155. 3010 XK = ND -DP: IF XK =  <RD GOTO 5200
  156. 3020  IF WP = N0  OR N1 + INT((ND -RD -N1)/N7) >WP GOTO 3060
  157. 3030 RM = (ND -RD) -( INT((ND -RD)/N7) *N7)
  158. 3040  IF RM = N0  THEN RM = N7
  159. 3050  IF RM >N7 -RD +LD GOTO 5200
  160. 3060  IF MP = N0  OR N1 + INT((ND -RD -N1)/TY) >MP GOTO 3100
  161. 3070 RM = (ND -RD) -( INT((ND -RD)/TY) *TY)
  162. 3080  IF RM = N0  THEN RM = TY
  163. 3090  IF RM >TY -RD +LD GOTO 5200
  164. 3100  IF YP = N0  OR N1 + INT((ND -RD -N1)/LY) >YP GOTO 3140
  165. 3110 RM = (ND -RD) -( INT((ND -RD)/LY) *LY)
  166. 3120  IF RM = N0  THEN RM = LY
  167. 3130  IF RM >LY -RD +LD GOTO 5200
  168. 3140  IF PD =  >LD +N1 GOTO 4100
  169. 3150  IF DA = N0 GOTO 3170
  170. 3160 XK = PD +DA: IF XK >LD GOTO 5300
  171. 3170  IF WA = N0  OR N1 + INT((LD -PD)/N7) >WA GOTO 3210
  172. 3180 RM = (LD +N1 -PD) -( INT((LD +N1 -PD)/N7) *N7)
  173. 3190  IF RM = N0  THEN RM = N7
  174. 3200  IF RM >N7 -RD +LD GOTO 5300
  175. 3210  IF MA = N0  OR N1 + INT((LD -PD)/TY) >MA GOTO 3250
  176. 3220 RM = (LD +N1 -PD) -( INT((LD +N1 -PD)/TY) *TY)
  177. 3230  IF RM = 0  THEN RM = TY
  178. 3240  IF RM >TY -RD +LD GOTO 5300
  179. 3250  IF YA = N0  OR N1 + INT((LD -PD)/LY) >YA GOTO 4100
  180. 3260 RM = (LD +N1 -PD) -( INT((LD +N1 -PD)/LY) *LY)
  181. 3270  IF RM = 0  THEN RM = LY
  182. 3280  IF RM >LY -RD +LD GOTO 5300
  183. 3290  GOTO 4100
  184. 4100  IF FQ$ < >"S" GOTO 2400
  185. 4120  IF RD <TD GOTO 2400
  186. 4130  IF RD =  <TD +(YA *LY) GOTO 2400
  187. 4140  IF RD =  <TD +(MA *TY) GOTO 2400
  188. 4150  IF RD =  <TD +(WA *N7) GOTO 2400
  189. 4160  IF RD =  <TD +DA GOTO 2400
  190. 4170 PT$ = "*** DELETED ***": GOSUB 600
  191. 4180  PRINT D$"READ REMINDER,R"H1
  192. 4185  INPUT HB: INPUT PD
  193. 4190  PRINT D$"WRITE REMINDER,R"R
  194. 4200  PRINT PD: PRINT TH
  195. 4205  PRINT D$"WRITE REMINDER,R"H1
  196. 4210  PRINT HB: PRINT R +TH:PB = BP:R = FP
  197. 4215  PRINT D$"WRITE REMINDER,R"R
  198. 4220  PRINT PB +TH
  199. 4225  PRINT D$"READ REMINDER,R"PB
  200. 4230  INPUT BP
  201. 4235  PRINT D$"WRITE REMINDER,R"PB
  202. 4240  PRINT BP: PRINT R +TH
  203. 4272  PRINT D$"CLOSE REMINDER"
  204. 4274  PRINT D$"OPEN REMINDER,L142"
  205. 4280  PRINT D$: GOTO 2400
  206. 4290  IF OP < >N2 GOTO 4300
  207. 4292  IF PS = N2 GOTO 9600
  208. 4294  PRINT D$"READ REMINDER,R1"
  209. 4296  INPUT FP: INPUT FP:FP = FP -TH: PRINT D$
  210. 4298 PS = N2: PRINT "*** PERIODIC REMINDERS BEGIN HERE ***": PRINT DL$:LC = LC +N2: GOTO 2400
  211. 4300 KY$ =  STR$(KY): IF  LEN(KY$) = N1  THEN KY$ = "0" +KY$
  212. 4310 KM$ =  STR$(KM): IF  LEN(KM$) = N1  THEN KM$ = "0" +KM$
  213. 4320 KD$ =  STR$(KD): IF  LEN(KD$) = N1  THEN KD$ = "0" +KD$
  214. 4330 LD$ = KY$ +KM$ +KD$
  215. 4340  PRINT D$"WRITE REMINDER,R0"
  216. 4350  PRINT H1 +TH: PRINT L1 +TH: PRINT " ": PRINT LD$: PRINT "Z"
  217. 4360  PRINT D$: GOTO 9600
  218. 5000  IF PS = N1  AND FQ$ < >"S" GOTO 2400
  219. 5010  IF PS = N2  AND FQ$ = "S" GOTO 2400
  220. 5100 PT$ = " ": GOSUB 600: GOTO 2400
  221. 5200 CD = ND: GOSUB 400:PT$ = "DUE " +FD$: GOSUB 600: GOTO 2400
  222. 5300 CD = PD: GOSUB 400:PT$ = "   WAS DUE " +FD$: GOSUB 600: GOTO 2400
  223. 8000  DIM VD(13):VD(1) = 0:VD(2) = 31:VD(3) = 59:VD(4) = 90:VD(5) = 120:VD(6) = 151:VD(7) = 181:VD(8) = 212:VD(9) = 243:VD(10) = 273:VD(11) = 304:VD(12) = 334:VD(13) = 365
  224. 8010  DIM VM(366):J = 1
  225. 8020  FOR I = 1 TO 366
  226. 8030  IF I >VD(J +1)  AND J <12  THEN J = J +1
  227. 8040 VM(I) = J: NEXT 
  228. 8050  DIM MO$(12):MO$(1) = "JAN":MO$(2) = "FEB":MO$(3) = "MAR":MO$(4) = "APR":MO$(5) = "MAY":MO$(6) = "JUN":MO$(7) = "JUL":MO$(8) = "AUG":MO$(9) = "SEP":MO$(10) = "OCT":MO$(11) = "NOV":MO$(12) = "DEC"
  229. 8060  DIM VD$(6):VD$(0) = "SUN":VD$(1) = "MON":VD$(2) = "TUE":VD$(3) = "WED":VD$(4) = "THR":VD$(5) = "FRI":VD$(6) = "SAT"
  230. 8070 N0 = 0:N1 = 1:N2 = 2:N3 = 3:N4 = 4:N5 = 5:N6 = 6:N7 = 7:N8 = 8:N9 = 9:NA = 10:NB = 11:NC = 12
  231. 8080 LY = 365:TY = 30:T9 = 29:SY = 60:PL = 66
  232. 8090 D$ =  CHR$(4):TH = 1000
  233. 8100  ONERR  GOTO 9000
  234. 8110  PRINT D$"OPEN REMINDER,L142"
  235. 8120  PRINT D$"READ REMINDER,R0"
  236. 8130  INPUT H1: INPUT L1: INPUT LD$: INPUT LD$
  237. 8140 H1 = H1 -TH:L1 = L1 -TH: POKE 216,0
  238. 8150  PRINT D$"READ REMINDER,R1"
  239. 8160  INPUT FP: INPUT FP:FP = FP -TH: PRINT D$
  240. 8170 YY =  VAL( LEFT$(LD$,N2)):MM =  VAL( MID$ (LD$,N3,N2)):DD =  VAL( RIGHT$(LD$,N2))
  241. 8180  GOSUB 100:LD = CD
  242. 8190  FOR I = 1 TO 39:DL$ = DL$ +"-": NEXT 
  243. 8999  GOTO 1000
  244. 9000  PRINT D$: POKE 216,0: HOME 
  245. 9010  PRINT "REMINDER FILE NOT FOUND"
  246. 9020  INPUT "HIT RETURN TO RETURN TO MENU ";R$
  247. 9030  GOTO 9999
  248. 9600  PRINT D$"PR#0": PRINT D$"CLOSE REMINDER"
  249. 9999  PRINT D$"RUN REMLO"